//@author A0080440U
//
// **********
//
// help class contains the strings 
// required by UI to help the user 
//
// **********

# include "Help.h"

Help::Help (void) {
	ostringstream hotkeys;
	hotkeys << "********************HOTKEYS********************\nF1 = help  |  F2 = reminders  |  F3 = display  |  F4 = search\n\n";
	hotkeys << "Clt + Z = undo   |   Clt + Y = redo\n\n";
	_help.push_back(hotkeys.str());

	ostringstream outDisplay;
	outDisplay<< "********************DISPLAY********************\n"<< "display <type>\n" << "<type> can be empty, all, a priority, or a status\n\n";
	_help.push_back(outDisplay.str());

	ostringstream outAdd;
	outAdd<< "********************ADD************************\n" << "add <taskname> on <deadline> ! <priority> @ <time>\n"<< " <taskname> is compulsory, rest are optional\n\n";
	_help.push_back(outAdd.str());

	ostringstream outDelete;
	outDelete<< "********************DELETE*********************\n" << "delete <line number>\n\n";
	_help.push_back(outDelete.str());

	ostringstream outModify;
	outModify<< "********************MODIFY*********************\n" << "e.g. \t modify 5 swim \t(modified taskname)";
	outModify << "\n\t modify 2 on 13/5 \t(modified date) \n\t modify 1 ! high \t(modified priority) \n\t modify 3 @ 2pm \t(modified time)\n\n";
	_help.push_back(outModify.str());

	ostringstream outMark;
	outMark<< "********************MARK***********************\n" << "mark <line number> <status>\n" << "status should be cmi/wip/done/archive\n\n";
	_help.push_back(outMark.str());

	ostringstream outSearch;
	outSearch << "********************SEARCH*********************\n" << "e.g. \t search meeting \t(search <taskname>) \n\t search 15/3 \t(search <date>)";
	outSearch << "\n\t search high \t(search <priority>) \n\t search cmi \t(search <status>) \n\t search 5/3-8/3 \t(search interval)\n\t ";
	outSearch << "clicking on the calendar searches for that date\n\n";
	_help.push_back(outSearch.str());

	
	ostringstream outFilter;
	outFilter<<"********************FILTER*********************\n" <<"e.g. \t filter 15/3 \t(filter <date>) \n\t filter high \t(filter <priority>)";
	outFilter << "\n\t filter cmi  \t(filter <status>) \n\t filter timed/timeless \n\t filter date/dateless\n\n";
	_help.push_back(outFilter.str());

	ostringstream outSort;
	outSort<< "********************SORT***********************\n" << "sort <type>\n" << "<type> can be 'deadline', 'priority', 'time' or 'task'";
	_help.push_back(outSort.str());
}

Help:: ~ Help (void) {
}

vector <string> Help:: getHelp() {
	return _help;
}